////////////////////////////////////////////////////////////////////////////////////////////////////
/// \file		SDevice\SDeviceMicroWaveGenerator.h
/// 		
/// \author		Sylvain Martin
/// \version	1.0
/// \date		18/04/2011
///
/// \brief	Declares the SDeviceMicroWaveGenerator class
/// 		
/// \section LICENSE
///
/// This program is free software; you can redistribute it and/or
/// modify it under the terms of the GNU General Public License as
/// published by the Free Software Foundation; either version 2 of
/// the License, or (at your option) any later version.
/// 
/// This program is distributed in the hope that it will be useful, but
/// WITHOUT ANY WARRANTY; without even the implied warranty of
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
/// General Public License for more details at
/// http://www.gnu.org/copyleft/gpl.html
////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef SDEVICESMICROWAVEGENERATOR_H_
#define SDEVICESMICROWAVEGENERATOR_H_

#include "SDeviceGpib.h"

////////////////////////////////////////////////////////////////////////////////////////////////////
/// \class	SDeviceMicroWaveGenerator
///
/// \brief	 Micro wave generator device virtual class. 
///
/// \author	Sylvain Martin
/// \date	18/04/2011
/// 		
/// \nosubgrouping
/// 							
/// \ingroup SDeviceMod
/// 		 
/// \sa SDeviceE8557D
////////////////////////////////////////////////////////////////////////////////////////////////////

class SDeviceMicroWaveGenerator: public SDeviceGpib {
	Q_OBJECT;

public :
	SDeviceMicroWaveGenerator(QObject *parent=0);

	Q_INVOKABLE virtual double frequency() const ;
	virtual void setFrequence(double const)=0;

	Q_INVOKABLE virtual double power( ) const ;
	virtual void setPower(double const ) =0;

	Q_INVOKABLE virtual double powerLimit( ) const;	
	virtual void setPowerLimit(const double) =0;

	virtual void activate(bool) =0;
	Q_INVOKABLE virtual bool isActivated( );


 protected :
	double frequency_;
	double power_;
	bool activated_;
	double powerLimit_;


};


#endif // SDEVICESMICROWAVEGENERATOR_H_